package com.cwx.mychat.entity.po;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.cwx.mychat.entity.enums.UserContactTypeEnum;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.Getter;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import java.util.Objects;

/**
 * 作者： cwx
 * 时间： 2024/9/21 14:22
 * 版本： 1.0
 * 注释：用户会话关联表
 */
@Data
@TableName("chat_session_user")
public class ChatSessionUser implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;
    /**
     * 用户Id
     */
    private String userId;
    /**
     * 联系人ID
     */
    private String contactId;
    /**
     * 会话Id
     */
    @TableId
    private String sessionId;
    /**
     * 联系人名称
     */
    private String contactName;
    /**
     * 是否为群聊管理员
     */
    private Integer isAdmin;
    /**
     * 用户昵称
     */
    private String nickName;
    /**
     * 最后接受消息
     */
    @TableField(exist = false)
    private String lastMessage;
    /**
     * 最后接受消息时间
     */
    @TableField(exist = false)
    private Long lastReceiveTime;
    /**
     * 会话成员数量
     */
    @TableField(exist = false)
    private Integer memberCount;
    /**
     * 联系人类型
     */
    @TableField(exist = false)
    private Integer contactType;
    /**
     * 头像
     */
    @TableField(exist = false)
    private String avatar;

    public Integer getContactType() {
        return Objects.requireNonNull(UserContactTypeEnum.getPrefix(contactId)).getType();
    }
}
